Manipulation de données bibliométriques via {managHAL}

Martin AMIENS

MIA - Paris-Saclay

2024-04-07

Martin AMIENS

  • Stagiaire au sein de l’unité MIA - Paris-Saclay.
  • Etudiant en première année du master Bio-Informatique et Bio-Statistiques à Paris-Saclay.
  • Tuteurs : Julie AUBERT, Pierre BARBILLON

Plan

  • Contexte du stage
  • Objectifs du stage
  • Accessibilité et généricité de {managHAL}
  • introduction aux Réseaux
  • Ajout de fonctionnalités à {managHAL}
  • Cas d’usage
  • Questions
  • Perspectives et avenir du package

Contexte

  • DRITT : Direction de la recherche, de l’innovation et du transfert technologique
  • Sciences Ouvertes : sont “la diffusion sans entrave des publications et des données de la recherche.” (plan-national-pour-la-science-ouverte,2021)
  • HAL : Hyper Articles en Ligne

Crédit : CCSDForge
  • {ManagHAL} : Package R d’extraction de données bibliométriques de HAL

Objectifs du stage

  • Accessibilité et généricité de {managHAL}
  • Ajout de fonctionnalités à {managHAL}

Accessibilité et généricité de {managHAL}

Exemple d’URL : “https://api.archives-ouvertes.fr/search/hal/?q=structId_i:1002311&fq=publicationDate_tdate:[2022-01-01T00:00:00Z%20TO%202023-01-01T23:59:59Z]&fq=docType_s:(COMM+OR+ART … &sort=producedDate_tdate+desc&fl=docid,halId_s,version_i,docType_s,citationFull_s … &defType=edismax&rows=1000”

Accessibilité et généricité de {managHAL}

Code
#| code-fold: true

data_RH_csv_Example <- load_team_table(filter_id = TRUE, date_cols = c(6,7), filepath_or_url = "./data/Data_RH_Example.csv")
# afin de ne garder que les lignes avec un idhal correct
data_RH_csv_Example <- data_RH_csv_Example[which(!is.na(data_RH_csv_Example$idhal)),]
data_RH_csv_Example <- as_tibble(data_RH_csv_Example)
data_RH_csv_Example
# A tibble: 3 × 13
  civilite nom       prenom statut rattachement  debut_contrat fin_contrat
  <chr>    <chr>     <chr>  <chr>  <chr>         <chr>         <chr>      
1 M.       ADJAKOSSA Éric   CEC    AgroParisTech ""            ""         
2 Mme      AUBERT    Julie  IR     INRAE         ""            ""         
3 M.       BARBILLON Pierre PR     AgroParisTech ""            ""         
# ℹ 6 more variables: financement <chr>, equipe <chr>, unite <chr>,
#   orcid <chr>, idhal <dbl>, adresse_mail <chr>
Code
#| code-fold: true

date_min = "01/01/2022"
date_max = "01/01/2023"

# Publications à partir d'un id de laboratoire.
HAL_publis_Labo <- managHAL::HAL_extract_csv(id = 1002311, date_min,date_max, type_id = "struct_id", add_output = c("structAcronym_s","structId_i", "structHasAlphaAuthIdHalPersonid_fs"))
HAL_publis_Labo <- as_tibble(HAL_publis_Labo)
HAL_publis_Labo[1,]
# A tibble: 1 × 11
    docid halId_s      version_i docType_s citationFull_s          citationRef_s
    <int> <chr>            <int> <chr>     <chr>                   <chr>        
1 4440523 hal-04440523         1 COMM      Isabelle Lebert, Maxim… Colloque fin…
# ℹ 5 more variables: publicationDate_tdate <chr>,
#   authFullNamePersonIDIDHal_fs <chr>, structAcronym_s <chr>,
#   structId_i <chr>, structHasAlphaAuthIdHalPersonid_fs <chr>
Code
# Publications à partir d'ids auteurs
HAL_publis_auteurs <- managHAL::HAL_extract_csv(id = data_RH_csv_Example[,12][2,] , date_min,date_max, type_id = "person_id")
HAL_publis_auteurs <- as_tibble(HAL_publis_auteurs)
HAL_publis_auteurs
# A tibble: 4 × 8
    docid halId_s      version_i docType_s citationFull_s          citationRef_s
    <int> <chr>            <int> <chr>     <chr>                   <chr>        
1 3781287 hal-03781287         1 COMM      Wenfan Cao, Maxime Lec… FOODMICRO 20…
2 3694338 hal-03694338         1 COMM      Wenfan Cao, Maxime Lec… 23ème éditio…
3 3811607 hal-03811607         1 COUV      Julie J. Aubert, Pierr… Statistical …
4 4019111 hal-03604836         1 ART       Sana Romdhane, Aymé Sp… The Internat…
# ℹ 2 more variables: publicationDate_tdate <chr>,
#   authFullNamePersonIDIDHal_fs <chr>

Introduction aux Réseaux

Un réseau est composé de :

  • noeuds (entités)

  • arêtes (interactions entre ces entités)

Code
# Création d'un réseau unipartite
set.seed(42) # Pour la reproductibilité 
unipartite <- erdos.renyi.game(10, 0.3)
unipartite_graph <- plot(unipartite, main = "Réseau Unipartite")

Code
# Création d'un réseau bipartite Noms des nœuds
nodes_A <- c("A1", "A2", "A3")
nodes_B <- c("B1", "B2", "B3", "B4")
# Liste des arêtes
edges <- c("A1", "B1", "A1", "B2", "A2", "B1", "A2",
    "B2", "A2", "B3", "A3", "B2", "A3", "B4")
# Création du graphe
bipartite <- graph(edges, directed = FALSE)
V(bipartite)$type <- bipartite_mapping(bipartite)$type
plot(bipartite, layout = layout_as_bipartite, vertex.color = c("skyblue",
    "salmon")[V(bipartite)$type + 1], vertex.label.color = "black",
    vertex.shape = "circle", vertex.size = 30, edge.width = 2,
    main = "Réseau Bipartite")

A : Exemple de Réseau trophique (réseau d’interactions des espèces chiliennes), Crédit : (Kéfi et al. 2016)

B : RAD51 et son réseau d’interactions de sa famille de gènes, Crédits : (Li et al., 2021)

Ajout de fonctionnalités à {managHAL}

construction d’un réseau de co-auteur et SBM

Réseau complet de co-auteurs de l’unité MIA - PS

Réseau complet de co-auteurs de l’unité MIA - PS coloré par appartenance aux groupes

Ajout de fonctionnalités à {managHAL}

Création de sous-groupe

Réseau partiel de co-auteurs de l’unité MIA - PS

Réseau partiel de co-auteurs de l’unité MIA - PS coloré par appartenance aux groupes

Cas d’usage

Voir Cas_d_usage_managHAL.R

L’unité MIA - Paris-Saclay 1

Code
#| code-fold: true
#| 

date_min = "01/01/2022"
date_max = "01/01/2023"

mia_table <- managHAL:::load_team_table(filter_id = FALSE, date_cols = c(7, 8), "./data/Data_RH_Example.csv")

cleaned_mia <- mia_table %>% 
  dplyr::filter(!is.na(idhal) & as.numeric(idhal)==idhal) %>% # on retire les faux idHal et les NA
  # puis filtre sur les dates 
  dplyr::mutate(debut_periode = managHAL:::borne_date(debut_contrat,
                                                     date_min,"max"),
                fin_periode = managHAL:::borne_date(fin_contrat,
                                                   date_max,"min"))
civilite nom prenom statut rattachement debut_contrat
M. ADJAKOSSA Éric CEC AgroParisTech
Mme ALBERT Isabelle CR INRAE
M. ALLYNDREE Joseph Doctorat AgroParisTech
Mme ALVAREZ Isabelle IPEF INRAE
M. ANAKOK Emré Doctorat INRAE 06/10/2021
Mme AUBERT Julie IR INRAE

L’unité MIA - Paris-Saclay 2

Code
managHAL::HAL_build_report()

L’unité MIA - Paris-Saclay 3

Questions

Contexte :

Dans les données récupérées, il existe pour un même nom plusieurs formes nominales (une en toute lettre, et une avec les initiales) . Toutes ces formes ne sont pas toujours associées à un identifiant. Lorsque je nettoie mes données, je souhaite donc rajouter un identifiant à une forme nominale sans identifiant s’il en existe un pour une autre forme nominale.

Problème :

Il arrive qu’il existe deux identifiants pour une même forme nominale (avec les initiales).

Exemple :

Première forme nominale : Julie Aubert ; Deuxième forme nominale : J. Aubert

Identifiant : 15356 ; Identifiant : 15356 ou NA

Première forme nominale : Juliette Aubert ; Deuxième forme nominale : J. Aubert

Identifiant : 180399 ; Identifiant : NA

Première forme nominale : Jule Aubert ; Deuxième forme nominale : J. Aubert

Identifiant : 20987 ; Identifiant : 20987

Perspectives et avenir du package

  • Optimisation des fonctions de préparation des données

  • Création et optimisation des fonctions permettant la création d’un réseau à partir des données

  • Création et optimisation des fonctions permettant la création d’un modèle à partir du réseau obtenu

Merci de m’avoir écouté

sources

https://www.ouvrirlascience.fr/plan-national-pour-la-science-ouverte/